package bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import mensagem.MsgForma;
import session.SessionFormaPagamento;
import entity.FormaPagamento;

@ManagedBean
@SessionScoped
public class BeanForma {

	private FormaPagamento formaPagamento = new FormaPagamento();

	private FormaPagamento filtro = new FormaPagamento();

	private List<FormaPagamento> formaPagamentos = new ArrayList<FormaPagamento>();

	private SessionFormaPagamento session = new SessionFormaPagamento();

	// //////////////////////////CONSTRUCTOR//////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public BeanForma() {

	}

	// //////////////////////////CONSTRUCTOR//////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public FormaPagamento getFormaPagamento() {
		return formaPagamento;
	}

	public void setFormaPagamento(FormaPagamento formaPagamento) {
		this.formaPagamento = formaPagamento;
	}

	public FormaPagamento getFiltro() {
		return filtro;
	}

	public void setFiltro(FormaPagamento filtro) {
		this.filtro = filtro;
	}

	public List<FormaPagamento> getFormaPagamentos() {
		return formaPagamentos;
	}

	public void setFormaPagamentos(List<FormaPagamento> formaPagamentos) {
		this.formaPagamentos = formaPagamentos;
	}

	public SessionFormaPagamento getSession() {
		return session;
	}

	public void setSession(SessionFormaPagamento session) {
		this.session = session;
	}

	// ///////////////////////////////METODOS/////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public void reinit() {
		this.formaPagamento = new FormaPagamento();
		this.filtro = new FormaPagamento();
		this.formaPagamentos = new ArrayList<FormaPagamento>();
	}

	public String save() throws Exception {
		if (this.formaPagamento.getId() != null) {
			return this.update();
		} else {
			if (this.session.save(this.formaPagamento)) {
				this.reinit();
				MsgForma.msgSave();
			}
		}
		return "";
	}

	public String update() throws Exception {
		if (this.session.update(this.formaPagamento)) {
			this.reinit();
			MsgForma.msgUpdate();
		}
		return null;
	}

	public String remove() {
		try {
			this.session.remove(formaPagamento);
			MsgForma.msgRemove();
		} catch (Exception e) {
			MsgForma.msgNotRemove();
		}
		return null;
	}

	public void find() throws Exception {
		this.formaPagamentos = this.session.getController().findList(filtro);
	}

}
